home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / game / demo / Mattonite_Src.lha / MattoniteEditorSuDisco.AMOS / MattoniteEditorSuDisco.amosSourceCode < prev    next >
AMOS Source Code  |  2001-02-19  |  15KB  |  500 lines

  1. '-> Mattonite Editor by Stefano Regattin 
  2. 'i> 13 ottobre 1996
  3. 'm> 14,16,17,18,19,20,25,26,30 ottobre 1996
  4. 'm> 3 luglio 1997
  5. 'm> 12 novembre 1997 
  6. 'm> 10,18 dicembre 1997
  7. 'm> 15 febbraio 1998 
  8. 'm> 19,20,21,22,24,30 maggio 2000
  9. 'm> 17 luglio 2000 
  10. 'm> 6 dicembre 2000
  11. 'm> 19 febbraio 2001 
  12. '--------------------
  13. OGGETTI$="MattoniteOggetti.Abk"
  14. BANCO=65535
  15. POSIZIONELINEAMAGGIORE=255
  16. POSIZIONELINEAMINORE=0
  17. Dim MATTONCINO(246),X0ZONA(246),Y0ZONA(246)
  18. Global FILE$,LIVELLO$,NOMEFILE$,OGGETTI$,PERCORSO$,PERCORSODEILIVELLI$
  19. Global PERCORSODEILIVELLIDELDISCODELGIOCO$,PERCORSODEGLIOGGETTI$
  20. Global BANCO,BLULINEAMINORE,BONUS,C0LORELINEAMAGGIORE,C0LORELINEAMINORE
  21. Global CONVERSIONERIUSCITA,LINEAMAGGIORE
  22. Global LIVELLO,LINEE,POSIZIONELINEAMAGGIORE,POSIZIONELINEAMINORE
  23. Global RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
  24. Global ROSSOLINEAMINORE,VERDELINEAMINORE
  25. Global MATTONCINO(),X0ZONA(),Y0ZONA()
  26. Proc INDIVIDUALAPOSIZIONEDELPROGRAMMA
  27. Proc IMPOSTAIPERCORSIDEIFILE
  28. Proc IMPOSTALOSCHERMO
  29. Proc IMPOSTALARCOBALENO
  30. Proc IMPOSTAILAMPEGGI
  31. Proc CARICAGLIOGGETTI
  32. Proc IMPOSTAICOLORI
  33. Proc IMPOSTALEZONEDEIMATTONCINI
  34. Proc IMPOSTALABARRADISCORRIMENTO
  35. Proc MOSTRALEZONE
  36. Proc MOSTRALALINEAATTIVA
  37. LINEAMAGGIORE=True
  38. Proc MOSTRALALINEAATTIVA
  39. Ink 62 : Bar 20,209 To 29,218
  40. Ink 61 : Polyline 20,217 To 20,209 To 28,209
  41. Polyline 24,211 To 22,213 To 22,214 To 24,216
  42. Ink 63 : Polyline 21,218 To 29,218 To 29,210
  43. Polyline 27,211 To 25,213 To 25,214 To 27,216
  44. Set Zone 248,20,209 To 29,218
  45. Get Icon 1,20,209 To 29+1,218+1
  46. Ink 62 : Bar 30,209 To 39,218
  47. Ink 61 : Polyline 30,217 To 30,209 To 38,209
  48. Polyline 32,211 To 34,213 To 34,214 To 32,216
  49. Ink 63 : Polyline 31,218 To 39,218 To 39,210
  50. Polyline 35,211 To 37,213 To 37,214 To 35,216
  51. Set Zone 249,30,209 To 39,218
  52. Get Icon 2,30,209 To 39+1,218+1
  53. Set Zone 250,233,209 To 264,223
  54. Set Zone 251,233,225 To 264,239
  55. Set Zone 252,233,241 To 264,255
  56. Set Zone 253,273,0 To 319,255
  57. Proc MOSTRAILLIVELLO
  58. Paste Icon 64,209,1
  59. Set Zone 254,64,209 To 73,218
  60. Paste Icon 74,209,2
  61. Set Zone 255,74,209 To 83,218
  62. Proc MOSTRAILBONUS
  63. Paste Icon 140,209,1
  64. Set Zone 256,140,209 To 149,218
  65. Paste Icon 150,209,2
  66. Set Zone 257,150,209 To 159,218
  67. Set Zone 258,0,248 To 31,255 : Rem Load 
  68. Set Zone 259,40,248 To 71,255 : Rem Save 
  69. Set Zone 260,80,248 To 159,255 : Rem Line 
  70. Set Zone 261,0,240 To 55,247 : Rem Rainbow
  71. Set Zone 262,56,240 To 71,247 : Rem Arrow up 
  72. Set Zone 263,72,240 To 87,247 : Rem Arrow down 
  73. Set Zone 264,160,209 To 191,216 : Rem Quit 
  74. Ink 29,32 : Text 160,216,"Quit"
  75. Limit Mouse 
  76. Paste Bob 0,209,83
  77. MATTONCINO=1
  78. Do 
  79.  XTOPO=X Screen(X Mouse)
  80.  YTOPO=Y Screen(Y Mouse)
  81.  TASTODELTOPOCLICCATO=Mouse Click
  82.  TASTODELTOPOPREMUTO=Mouse Key
  83.  ZONATOPO=Mouse Zone
  84.  If TASTODELTOPOPREMUTO=1
  85.   If ZONATOPO>0 and ZONATOPO<248
  86.    If MATTONCINO=0
  87.     Ink 0 : Bar X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1) To X0ZONA(ZONATOPO-1)+19,Y0ZONA(ZONATOPO-1)+9
  88.    Else 
  89.     Paste Bob X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1),MATTONCINO+82
  90.    End If 
  91.    MATTONCINO(ZONATOPO-1)=MATTONCINO
  92.   Else If ZONATOPO>249 and ZONATOPO<253
  93.    If LINEAMAGGIORE=True
  94.     ROSSO=C0LORELINEAMAGGIORE/256
  95.     VERDE=C0LORELINEAMAGGIORE/16 mod 16
  96.     BLU=C0LORELINEAMAGGIORE mod 16
  97.    Else 
  98.     ROSSO=C0LORELINEAMINORE/256
  99.     VERDE=C0LORELINEAMINORE/16 mod 16
  100.     BLU=C0LORELINEAMINORE mod 16
  101.    End If 
  102.    If ZONATOPO=250
  103.     ROSSO=(XTOPO-233)/2
  104.     Hslider 233,209 To 264,223,16,ROSSO,1
  105.     Ink 0 : Bar 217,216 To 232,223
  106.     ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
  107.    Else If ZONATOPO=251
  108.     VERDE=(XTOPO-233)/2
  109.     Hslider 233,225 To 264,239,16,VERDE,1
  110.     Ink 0 : Bar 217,232 To 232,239
  111.     VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
  112.    Else If ZONATOPO=252
  113.     BLU=(XTOPO-233)/2
  114.     Hslider 233,241 To 264,255,16,BLU,1
  115.     Ink 0 : Bar 217,248 To 232,255
  116.     BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
  117.    End If 
  118.    C0LORE=ROSSO*256+VERDE*16+BLU
  119.    Colour 1,C0LORE
  120.    If LINEAMAGGIORE=True
  121.     C0LORELINEAMAGGIORE=C0LORE
  122.     Rain(0,POSIZIONELINEAMAGGIORE)=C0LORELINEAMAGGIORE
  123.    Else 
  124.     C0LORELINEAMINORE=C0LORE
  125.     Rain(0,POSIZIONELINEAMINORE)=C0LORELINEAMINORE
  126.    End If 
  127.    Rainbow 0,257,0,271
  128.   Else If ZONATOPO=253
  129.    If YTOPO>POSIZIONELINEAMINORE
  130.     Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  131.     POSIZIONELINEAMAGGIORE=YTOPO
  132.     LINEAMAGGIORE=True
  133.     Proc MOSTRALALINEAATTIVA
  134.    End If 
  135.   Else If ZONATOPO=258
  136.    Inverse On : Print At(0,31);"Load"; : Inverse Off 
  137.    Proc CARICAILLIVELLO
  138.    Proc DABANCOAVARIABILI
  139.    Rainbow 0,257,0,271
  140.    Proc MOSTRAIMATTONCINI
  141.    Proc MOSTRAILBONUS
  142.    Proc MOSTRALEZONE
  143.    Proc MOSTRALALINEAATTIVA
  144.    LINEAMAGGIORE= Not LINEAMAGGIORE
  145.    Proc MOSTRALALINEAATTIVA
  146.   Else If ZONATOPO=259
  147.    Inverse On : Print At(5,31);"Save"; : Inverse Off 
  148.    Proc DAVARIABILIABANCO
  149.    Proc SALVAILLIVELLO
  150.    Proc MOSTRALEZONE
  151.    Proc MOSTRALALINEAATTIVA
  152.   End If 
  153.  Else If TASTODELTOPOPREMUTO=2
  154.   If ZONATOPO=253
  155.    If YTOPO<POSIZIONELINEAMAGGIORE
  156.     Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  157.     POSIZIONELINEAMINORE=YTOPO
  158.     LINEAMAGGIORE=False
  159.     Proc MOSTRALALINEAATTIVA
  160.    End If 
  161.   Else If ZONATOPO=254
  162.    Add LIVELLO,-1,0 To 999
  163.    Proc MOSTRAILLIVELLO
  164.   Else If ZONATOPO=255
  165.    Add LIVELLO,1,0 To 999
  166.    Proc MOSTRAILLIVELLO
  167.   Else If ZONATOPO=256
  168.    Add BONUS,-1,0 To 9999999
  169.    Proc MOSTRAILBONUS
  170.   Else If ZONATOPO=257
  171.    Add BONUS,1,0 To 9999999
  172.    Proc MOSTRAILBONUS
  173.   End If 
  174.  End If 
  175.  If TASTODELTOPOCLICCATO=1
  176.   If ZONATOPO=248
  177.    Add MATTONCINO,-1,0 To 33
  178.    If MATTONCINO=0
  179.     Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
  180.    Else 
  181.     Paste Bob 0,209,82+MATTONCINO
  182.    End If 
  183.   Else If ZONATOPO=249
  184.    Add MATTONCINO,1,0 To 33
  185.    If MATTONCINO=0
  186.     Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
  187.    Else 
  188.     Paste Bob 0,209,82+MATTONCINO
  189.    End If 
  190.   Else If ZONATOPO=254
  191.    Add LIVELLO,-1,0 To 999
  192.    Proc MOSTRAILLIVELLO
  193.   Else If ZONATOPO=255
  194.    Add LIVELLO,1,0 To 999
  195.    Proc MOSTRAILLIVELLO
  196.   Else If ZONATOPO=256
  197.    Add BONUS,-1,0 To 9999999
  198.    Proc MOSTRAILBONUS
  199.   Else If ZONATOPO=257
  200.    Add BONUS,1,0 To 9999999
  201.    Proc MOSTRAILBONUS
  202.   Else If ZONATOPO=260
  203.    LINEAMAGGIORE= Not LINEAMAGGIORE
  204.    Proc MOSTRALALINEAATTIVA
  205.   Else If ZONATOPO=261
  206.    Inverse On : Print At(0,30);"Rainbow"; : Inverse Off 
  207.    LINEE=POSIZIONELINEAMAGGIORE-POSIZIONELINEAMINORE+1
  208.    If LINEE>2
  209.     Proc CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
  210.     Proc PROGRESSIONECOLORI
  211.    Else 
  212.     Bell 1
  213.    End If 
  214.    Proc MOSTRALEZONE
  215.    Proc MOSTRALALINEAATTIVA
  216.   Else If ZONATOPO=262
  217.    Inverse On : Print At(7,30);Chr$(147);Chr$(148); : Inverse Off 
  218.    If LINEAMAGGIORE=True
  219.     If POSIZIONELINEAMAGGIORE>0 and POSIZIONELINEAMAGGIORE>POSIZIONELINEAMINORE+1
  220.      Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  221.      Dec POSIZIONELINEAMAGGIORE
  222.      Wait 5
  223.     End If 
  224.    Else 
  225.     If POSIZIONELINEAMINORE>0
  226.      Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  227.      Dec POSIZIONELINEAMINORE
  228.      Wait 5
  229.     End If 
  230.    End If 
  231.    Proc MOSTRALEZONE
  232.    Proc MOSTRALALINEAATTIVA
  233.   Else If ZONATOPO=263
  234.    Inverse On : Print At(9,30);Chr$(149);Chr$(150); : Inverse Off 
  235.    If LINEAMAGGIORE=True
  236.     If POSIZIONELINEAMAGGIORE<255
  237.      Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  238.      Inc POSIZIONELINEAMAGGIORE
  239.      Wait 5
  240.     End If 
  241.    Else 
  242.     If POSIZIONELINEAMINORE<255 and POSIZIONELINEAMINORE<POSIZIONELINEAMAGGIORE-1
  243.      Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  244.      Inc POSIZIONELINEAMINORE
  245.      Wait 5
  246.     End If 
  247.    End If 
  248.    Proc MOSTRALEZONE
  249.    Proc MOSTRALALINEAATTIVA
  250.   Else If ZONATOPO=264
  251.    Exit 
  252.   End If 
  253.  End If 
  254. Loop 
  255. Rainbow Del 0 : Screen Close 0 : Erase All : End 
  256. Procedure CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
  257.  ROSSOLINEAMAGGIORE=C0LORELINEAMAGGIORE/256
  258.  ROSSOLINEAMINORE=C0LORELINEAMINORE/256
  259.  RAGIONEDELROSSO#=(ROSSOLINEAMAGGIORE-ROSSOLINEAMINORE)/(LINEE-1.0)
  260.  VERDELINEAMAGGIORE=C0LORELINEAMAGGIORE/16 mod 16
  261.  VERDELINEAMINORE=C0LORELINEAMINORE/16 mod 16
  262.  RAGIONEDELVERDE#=(VERDELINEAMAGGIORE-VERDELINEAMINORE)/(LINEE-1.0)
  263.  BLULINEAMAGGIORE=C0LORELINEAMAGGIORE mod 16
  264.  BLULINEAMINORE=C0LORELINEAMINORE mod 16
  265.  RAGIONEDELBLU#=(BLULINEAMAGGIORE-BLULINEAMINORE)/(LINEE-1.0)
  266. End Proc
  267. Procedure CARICAGLIOGGETTI
  268.  Load PERCORSODEGLIOGGETTI$+OGGETTI$
  269. End Proc
  270. Procedure CARICAILLIVELLO
  271.  Erase BANCO
  272.  Print At(0,29);"Insert game disk (y/n)";
  273.  RISPOSTA$=Lower$(Input$(1))
  274.  Print At(0,29);Space$(28);
  275.  If RISPOSTA$="n" Then Pop Proc
  276.  LIVELLO$="Livello"+Str$(LIVELLO)-" "
  277.  FILE$=PERCORSODEILIVELLIDELDISCODELGIOCO$+LIVELLO$
  278.  If Exist(FILE$)
  279.   Open In 1,FILE$
  280.   MARCATORE$=Input$(1,9)
  281.   LUNGHEZZABANCO=Lof(1)
  282.   Close 1
  283.   If MARCATORE$="Mattonite"
  284.    Reserve As Work BANCO,LUNGHEZZABANCO
  285.    Bload FILE$,Start(BANCO)
  286.   End If 
  287.  End If 
  288. End Proc
  289. Procedure DABANCOAVARIABILI
  290.  If Length(BANCO)>0
  291.   INDIRIZZO=Start(BANCO)+9
  292.   For A=0 To 246
  293.    MATTONCINO(A)=Peek(INDIRIZZO)
  294.    Inc INDIRIZZO
  295.   Next A
  296.   For A=0 To 255
  297.    ARCOBALENO=Peek(INDIRIZZO)
  298.    Inc INDIRIZZO
  299.    ARCOBALENO=ARCOBALENO+Peek(INDIRIZZO)*$100
  300.    Rain(0,A)=ARCOBALENO
  301.    Inc INDIRIZZO
  302.   Next A
  303.   BONUS=Peek(INDIRIZZO)
  304.   Inc INDIRIZZO
  305.   Add BONUS,Peek(INDIRIZZO)*100
  306.   Inc INDIRIZZO
  307.   Add BONUS,Peek(INDIRIZZO)*10000
  308.   Inc INDIRIZZO
  309.   Add BONUS,Peek(INDIRIZZO)*1000000
  310.   Inc INDIRIZZO
  311.   Print At(0,29);
  312.   If INDIRIZZO=Start(BANCO)+Length(BANCO)
  313.    Print "Level";LIVELLO;" loaded";
  314.   Else 
  315.    Print "Data error";
  316.   End If 
  317.  Else 
  318.   Print At(0,29);"Level not loaded";
  319.  End If 
  320.  Wait 100
  321.  Print At(0,29);Space$(28);
  322. End Proc
  323. Procedure DAVARIABILIABANCO
  324.  Reserve As Work BANCO,772
  325.  INDIRIZZO=Start(BANCO)
  326.  Poke$ INDIRIZZO,"Mattonite"
  327.  Add INDIRIZZO,9
  328.  For A=0 To 246
  329.   Poke INDIRIZZO,MATTONCINO(A)
  330.   Inc INDIRIZZO
  331.  Next A
  332.  For A=0 To 255
  333.   ARCOBALENO=Rain(0,A)
  334.   Poke INDIRIZZO,ARCOBALENO mod $100
  335.   Inc INDIRIZZO
  336.   Poke INDIRIZZO,ARCOBALENO/$100
  337.   Inc INDIRIZZO
  338.  Next A
  339.  Poke INDIRIZZO,BONUS mod 100
  340.  Inc INDIRIZZO
  341.  Poke INDIRIZZO,BONUS/100 mod 100
  342.  Inc INDIRIZZO
  343.  Poke INDIRIZZO,BONUS/10000 mod 100
  344.  Inc INDIRIZZO
  345.  Poke INDIRIZZO,BONUS/1000000 mod 100
  346.  Inc INDIRIZZO
  347.  Print At(0,29);
  348.  If INDIRIZZO=Start(BANCO)+Length(BANCO)
  349.   Print "Level";LIVELLO;" converted";
  350.   CONVERSIONERIUSCITA=True
  351.  Else 
  352.   Print "Data error";
  353.   CONVERSIONERIUSCITA=False
  354.  End If 
  355.  Wait 100
  356.  Print At(0,29);Space$(28);
  357. End Proc
  358. Procedure INDIVIDUALAPOSIZIONEDELPROGRAMMA
  359.  PERCORSO$=Dir$
  360. End Proc
  361. Procedure IMPOSTAICOLORI
  362.  Get Bob Palette 
  363. End Proc
  364. Procedure IMPOSTAILAMPEGGI
  365.  Flash 20,"(0FF,2)(FFF,1)(0FF,2)(000,1)"
  366.  Flash 21,"(F70,2)(FFF,1)(F70,2)(000,1)"
  367.  Flash 22,"(F77,9)(FF7,9)(7F7,9)(7FF,9)(77F,9)(F7F,9)"
  368. End Proc
  369. Procedure IMPOSTAIPERCORSIDEIFILE
  370.  PERCORSODEGLIOGGETTI$=PERCORSO$+"Grafica/"
  371.  PERCORSODEILIVELLI$=PERCORSO$+"Livelli/"
  372.  PERCORSODEILIVELLIDELDISCODELGIOCO$="Mattonite:Livelli/"
  373. End Proc
  374. Procedure IMPOSTALABARRADISCORRIMENTO
  375.  Set Slider 61,61,29,1,63,63,29,1
  376. End Proc
  377. Procedure IMPOSTALARCOBALENO
  378.  Set Rainbow 0,0,271,"","","" : Rainbow 0,257,0,271
  379. End Proc
  380. Procedure IMPOSTALEZONEDEIMATTONCINI
  381.  Reserve Zone 264
  382.  Ink 29 : Polyline 272,0 To 272,208 To 0,208
  383.  For M=0 To 246
  384.   LINEADIMATTONCINI=M/13
  385.   RIGADIMATTONCINI=M mod 13
  386.   X0ZONA(M)=RIGADIMATTONCINI*21
  387.   Y0ZONA(M)=LINEADIMATTONCINI*11
  388.   MATTONCINO(M)=1
  389.   If MATTONCINO(M)>0 Then Paste Bob X0ZONA(M),Y0ZONA(M),82+MATTONCINO(M)
  390.   Set Zone M+1,X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+20,Y0ZONA(M)+10
  391.  Next M
  392. End Proc
  393. Procedure IMPOSTALOSCHERMO
  394.  Screen Open 0,320,256,64,Lowres
  395.  Curs Off : Flash Off : Pen 29 : Paper 0 : Cls 
  396. End Proc
  397. Procedure MOSTRAILBONUS
  398.  CIFRA=BONUS/1000000 mod 10
  399.  Ink 29,32 : Text 84,216,Str$(CIFRA)-" "
  400.  CIFRA=BONUS/100000 mod 10
  401.  Ink 29,32 : Text 92,216,Str$(CIFRA)-" "
  402.  CIFRA=BONUS/10000 mod 10
  403.  Ink 29,32 : Text 100,216,Str$(CIFRA)-" "
  404.  CIFRA=BONUS/1000 mod 10
  405.  Ink 29,32 : Text 108,216,Str$(CIFRA)-" "
  406.  CIFRA=BONUS/100 mod 10
  407.  Ink 29,32 : Text 116,216,Str$(CIFRA)-" "
  408.  CIFRA=BONUS/10 mod 10
  409.  Ink 29,32 : Text 124,216,Str$(CIFRA)-" "
  410.  CIFRA=BONUS mod 10
  411.  Ink 29,32 : Text 132,216,Str$(CIFRA)-" "
  412. End Proc
  413. Procedure MOSTRAILLIVELLO
  414.  CIFRA=LIVELLO/100 mod 10
  415.  Ink 29,32 : Text 40,216,Str$(CIFRA)-" "
  416.  CIFRA=LIVELLO/10 mod 10
  417.  Ink 29,32 : Text 48,216,Str$(CIFRA)-" "
  418.  CIFRA=LIVELLO mod 10
  419.  Ink 29,32 : Text 56,216,Str$(CIFRA)-" "
  420. End Proc
  421. Procedure MOSTRAIMATTONCINI
  422.  For M=0 To 246
  423.   If MATTONCINO(M)=0
  424.    Ink 0 : Bar X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+19,Y0ZONA(M)+9
  425.   Else 
  426.    Paste Bob X0ZONA(M),Y0ZONA(M),MATTONCINO(M)+82
  427.   End If 
  428.  Next M
  429. End Proc
  430. Procedure MOSTRALALINEAATTIVA
  431.  If LINEAMAGGIORE=True
  432.   C0LORELINEAMAGGIORE=Rain(0,POSIZIONELINEAMAGGIORE)
  433.   Colour 1,C0LORELINEAMAGGIORE
  434.   Ink 1 : Bar 264,208 To 272,255
  435.   Ink 29 : Box 264,208 To 272,255
  436.   ROSSO=C0LORELINEAMAGGIORE/256
  437.   VERDE=C0LORELINEAMAGGIORE/16 mod 16
  438.   BLU=C0LORELINEAMAGGIORE mod 16
  439.   Ink 29 : Draw 272,POSIZIONELINEAMAGGIORE To 281,POSIZIONELINEAMAGGIORE
  440.   Ink 32 : Draw 310,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  441.  Else 
  442.   C0LORELINEAMINORE=Rain(0,POSIZIONELINEAMINORE)
  443.   Colour 1,C0LORELINEAMINORE
  444.   Ink 1 : Bar 264,208 To 272,255
  445.   Ink 29 : Box 264,208 To 272,255
  446.   ROSSO=C0LORELINEAMINORE/256
  447.   VERDE=C0LORELINEAMINORE/16 mod 16
  448.   BLU=C0LORELINEAMINORE mod 16
  449.   Ink 29 : Draw 272,POSIZIONELINEAMINORE To 281,POSIZIONELINEAMINORE
  450.   Ink 32 : Draw 310,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  451.  End If 
  452.  Hslider 233,209 To 264,223,16,ROSSO,1
  453.  Ink 0 : Bar 217,216 To 232,223
  454.  ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
  455.  Hslider 233,225 To 264,239,16,VERDE,1
  456.  Ink 0 : Bar 217,232 To 232,239
  457.  VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
  458.  Hslider 233,241 To 264,255,16,BLU,1
  459.  Ink 0 : Bar 217,248 To 232,255
  460.  BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
  461.  Locate 10,31
  462.  If LINEAMAGGIORE=True Then Print "Major"; Else Print "Minor";
  463. End Proc
  464. Procedure MOSTRALEZONE
  465.  Print At(0,30);Space$(28);At(0,30);"Rainbow";Chr$(147);Chr$(148);Chr$(149);Chr$(150)
  466.  Print At(0,31);Space$(28);At(0,31);"Load Save       line";
  467. End Proc
  468. Procedure PROGRESSIONECOLORI
  469.  Shared LINEE,RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
  470.  Shared ROSSOLINEAMINORE,VERDELINEAMINORE,BLULINEAMINORE
  471.  For LINEA=1 To LINEE-2
  472.   ROSSO=ROSSOLINEAMINORE+(LINEA)*RAGIONEDELROSSO#
  473.   VERDE=VERDELINEAMINORE+(LINEA)*RAGIONEDELVERDE#
  474.   BLU=BLULINEAMINORE+(LINEA)*RAGIONEDELBLU#
  475.   C0LORE=ROSSO*256+VERDE*16+BLU
  476.   Rain(0,POSIZIONELINEAMINORE+LINEA)=C0LORE : Rainbow 0,257,0,271
  477.   Bell 96
  478.  Next LINEA
  479. End Proc
  480. Procedure SALVAILLIVELLO
  481.  If CONVERSIONERIUSCITA=True
  482.   LIVELLO$="Livello"+Str$(LIVELLO)-" "
  483.   FILE$=PERCORSODEILIVELLIDELDISCODELGIOCO$+LIVELLO$
  484.   If Exist(FILE$)
  485.    Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO)
  486.    Print At(0,29);"Level";LIVELLO;" saved";
  487.    Wait 100
  488.   End If 
  489.   Print At(0,29);"Level backup? (s/n)";
  490.   RISPOSTA$=Lower$(Input$(1))
  491.   Print At(0,29);Space$(28);
  492.   If RISPOSTA$="s"
  493.    FILE$=PERCORSODEILIVELLI$+LIVELLO$
  494.    Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO)
  495.    Print At(0,29);"Level";LIVELLO;" backed up";
  496.    Wait 100
  497.   End If 
  498.   Print At(0,29);Space$(28);
  499.  End If 
  500. End Proc